約 6,330,888 件
https://w.atwiki.jp/mc_colonycraft/pages/24.html
使用可能MODについて Forge(Pluginの都合上、サーバーに接続の際エラーが発生します) Fabric MAPMOD(VoxelMAP、JourneyMAP、Xaero's minimap + Xaero'sWorldmap) Optifine(シェーダーも可) sodium Spawnchecker 日本語化MOD フォント変更MOD クラフトガイド系MOD インベントリ整理系MOD 上記以外のMODを使用したい場合は運営に相談して下さい。
https://w.atwiki.jp/akasatanahama/pages/124.html
概要 実績を追加する方法。 ※当チュートリアルでは、「イベントの実装」の内容を一部使用しております。 イベントの実装は現在チュートリアルにはありませんが、今後追加予定ですのでしばらくお待ち下さい。 ソースコード AluminiumMod.java package tutorial.aluminiummod; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; import net.minecraft.world.World; import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.MinecraftForge; @Mod(modid = "AluminiumMod", name = "Aluminium Mod", version = "1.0.0") public class AluminiumMod { //追加するアイテム・ブロックの宣言 public static Item aluminium; public static Block blockAluminiumOre; //追加する実績の宣言 public static Achievement getAluminium; public static Achievement slayCreeper; @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { //アイテムの実装 aluminium = new Item() { //アイテムがクラフト・精錬されたときに呼ばれるメソッド。 public void onCreated(ItemStack stack, World world, EntityPlayer player) { //Player.triggerAchievement(Statbase) //Statbaseには実績のインスタンスを入れる。これにより、未解除の実績が解除される。 player.triggerAchievement(AluminiumMod.getAluminium); super.onCreated(stack, world, player); } } //以下はアイテム・ブロックの実装と同様。 .setCreativeTab(CreativeTabs.tabMaterials) .setUnlocalizedName("aluminium") .setTextureName("aluminiummod aluminium"); GameRegistry.registerItem(aluminium, "aluminium"); blockAluminiumOre = new AluminiumOre() .setBlockName("blockAluminiumOre") .setBlockTextureName("aluminiummod aluminium_ore"); GameRegistry.registerBlock(blockAluminiumOre, "blockAluminiumOre"); //実績の実装 //内部名称, 言語名称, 縦の位置, 横の位置, アイコンのアイテム, 親実績 //縦の位置はマイナスで上 横の位置はマイナスで左 //Achievement.setSpecial()で、エフェクトを付けられる。 this.getAluminium = new Achievement("getAluminium", "getAluminium", 0, 0, new ItemStack(this.aluminium, 0), null).registerStat(); this.slayCreeper = new Achievement("slayCreeper", "slayCreeper", 1, -1, new ItemStack(Items.skull, 0, 4), this.getAluminium).setSpecial().registerStat(); //実績ページの実装 //ページ名称, 実績の配列 AchievementPage.registerAchievementPage(new AchievementPage("AluminiumMod", new Achievement[]{this.getAluminium, this.slayCreeper})); //イベントクラスの登録 MinecraftForge.EVENT_BUS.register(new AluminiumEvent()); } @Mod.EventHandler public void init(FMLInitializationEvent event) { //クラフト・精錬レシピの追加 GameRegistry.addShapelessRecipe(new ItemStack(AluminiumMod.aluminium), AluminiumMod.blockAluminiumOre); GameRegistry.addSmelting(AluminiumMod.blockAluminiumOre, new ItemStack(AluminiumMod.aluminium), 0.8F); } } AluminiumOre.java 鉱石の追加 のものと同様。 AluminiumEvent.java package tutorial.aluminiummod; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; //イベントクラス。詳細の解説は今後実装予定。 public class AluminiumEvent { //アイテムを拾った時のイベント @SubscribeEvent public void EntityItemPickUpEvent(EntityItemPickupEvent e) { if (e.entityPlayer != null e.item != null e.item.getEntityItem() != null e.item.getEntityItem().getItem() == AluminiumMod.aluminium) { e.entityPlayer.triggerAchievement(AluminiumMod.getAluminium); } } //Entityが倒された時のイベント @SubscribeEvent public void LivingDeathEvent(LivingDeathEvent e) { if (e.entityLiving != null e.entityLiving instanceof EntityCreeper e.source.getEntity() != null e.source.getEntity() instanceof EntityPlayer) { ((EntityPlayer) e.source.getEntity()).triggerAchievement(AluminiumMod.slayCreeper); } } } なお、「バニラのアイテムがクラフトされたとき」などは以下のようなコードをAluminiumEventに追加すれば良い。 +追加コード 「アイテム"Skull"でメタデータ"4"に設定されたItemStackがプレイヤーのインベントリ内にあるかどうかチェックする」動作を実装したイベント。 //EntityLivingのアップデートごとに呼ばれるイベント。毎tick呼ばれるので非推奨。 @SubscribeEvent public void LivingUpdateEvent(LivingEvent.LivingUpdateEvent e) { if (e.entityLiving instanceof EntityPlayer) { for (ItemStack itemStack ((EntityPlayer) e.entityLiving).inventory.mainInventory) { if (itemStack != null itemStack.getItem() == Items.skull itemStack.getItemDamage() == 4){ ((EntityPlayer) e.entityLiving).triggerAchievement(AluminiumMod.slayCreeper); } } } } 解説 通常、MinecraftForgeのテスト環境ではユーザー名を毎回振り直すので実績は保存されない。 そのため、プログラム引数に"-username=[ユーザー名]"(例 -username=hogehoge)を渡すことでユーザー名を固定し、テスト環境でも実績を保存できる。 (なお、このような措置を取らなくても実際にMinecraftLauncherから起動した場合はユーザー名通りに実績が保存できる。) これは、その他のスコアボード、マルチでのテスト等でも使えるテクニックである。 Item void onCreated(ItemStack stack, World world, EntityPlayer player) アイテムがクラフト・精錬されたときに呼ばれるメソッド。 作業台・かまどから取り出したときにこのメソッドが呼ばれる。 Achievement コンストラクタ(String name, String localname, int Xpos, int Ypos, ItemStack stack, Achievement parent) 実績を定義する。コメントの通り引数を渡していく。 void setSpecial() 実績をレアとして設定する。 AchievementPage コンストラクタ(String name, Achievement[] achievements) 実績ページを定義する。第一引数には名称(のunlocalizedname)、第二引数にはこのページに入れる実績を渡す。 static void registerAchievementPage(AchievementPage page) 実績ページを登録する。 EventBus register(Object event) 引数にイベントを記述したクラスを渡す。 @SubscribeEvent イベントを記述したメソッドに必ずつける。これの付いたメソッドには、引数としてフックしたいイベントを渡せるようにする。 詳しくは別ページで解説予定。 EntityPlayer void triggerAchievement(StatBase stat) 引数に実績を渡すことで、その実績を解除できる。 コメント この項目に関する質問などをどうぞ。 質問なのですが、バニラアイテムをクラフトしたときに実績を解除する時は - 名無しさん 2016-12-18 20 38 17 どのようにすればいいのでしょうか - 名無しさん 2016-12-18 20 38 39 「クラフトしたとき」のイベントはありませんので、上記「追加コード」のようなコードを参照の上、AluminiumEventに追加してください。- Tom Kate 2016-12-20 22 58 41 ありがとうございました。 - 名無しさん 2016-12-23 12 42 24 このソースをそのまま使うと実績がワールドを出るたびにリセットされるようなのですが保存するにはどうすればよいですか? - 名無しさん 2017-02-20 21 35 01 僕も、同じ症状で困ってます。 - mod初心者 2017-04-05 16 09 16 テスト環境では、ユーザー名が毎回変わるため実績が保存されません。EclipseやIDEAを利用しているようでしたらプログラムの起動設定から「プログラム引数(パラメーター)」に-username=[ユーザー名]でユーザー名が固定できますのでお試しください。 - Tom Kate 2017-04-08 13 23 50 そうやっても、実績が保存されませんがどうしたら良いのでしょうか? - mod初心者 2017-04-08 14 46 18 開発環境は、Eclipseです。 - mod初心者 2017-04-09 08 38 57 コードを修正いたしました。このコードでも変更前でも私の環境では実績が保存されておりますがそちらはどうでしょうか? - Tom Kate 2017-04-09 11 39 08 ちゃんと保存されるようになりました!ありがとうございました! - mod初心者 2017-04-10 15 31 02 気になるところがあるのですが、プログラム引数のハイフンの数は2つだったと思うのですが。 - mod初心者 2017-04-10 15 33 53 確認が取りづらいところではありますが、多分どちらの書き方でも明示的に"username"であることが示されているので大丈夫だと思われます。 - Tom Kate 2017-04-10 20 04 11 分かりました。色々答えてくれてありがとうございました! - mod初心者 2017-04-10 20 17 53 名前
https://w.atwiki.jp/tsminecraft/pages/10.html
このページは http //www26.atwiki.jp/minecraft/pages/645.htmlからの引用です 現在のこのページの情報は、竹mod ver2.5.9.7(for Minecraft 1.4.6)時のものです。 MOD名 竹mod 製作者 ruby 配布場所 http //forum.minecraftuser.jp/viewtopic.php?f=13 t=172 前提MOD 【MinecraftForge】 使用Block ID 238-251 (14個) 使用Item ID 3791-3810 (19個) 使用Sprite ID 0個 使用Terrain ID 0個 使用class なし (前提MOD除く) 目次 このMODについて 追加ブロック・アイテム・レシピ一覧 筍・竹・桜について 袋の使い方 実際に設置してのサンプル画像 モブごとの刀の有効度&追加ドロップ一覧 温泉について このMODについて ruby氏作成の、Minecraft世界に竹・桜・畳・ふすま・行灯・和箪笥・布団・温泉といった和の要素を追加するMOD。 追加アイテムの半分は和風インテリア用のデコレーションアイテムだが、 残りの半分には麦飯や串焼き、爆竹に竹槍、透明Lv15光源ブロックこと狐火など、独特のアイテムが揃っている。 夜にほのかに光る桜の木や、湯気の立ち昇る温泉などは、ことさら日本人プレイヤーの心をくすぐる。 露天風呂や純日本家屋を作りたい、和の風景が欲しい人向け。 有志によって一部のテクスチャを32x32サイズに描きなおしたテクスチャパックが幾つか配布されている。 ダウンロード場所:http //forum.minecraftuser.jp/viewtopic.php?f=14 t=5598 (作者:Helve) ダウンロード場所:http //forum.minecraftuser.jp/viewtopic.php?f=13 t=172 start=540#p57500 (作者:z31) ダウンロード場所:http //forum.minecraftuser.jp/viewtopic.php?f=13 t=172 start=600#p60548 (作者:TUMO) 追加ブロック・アイテム・レシピ一覧 1ページ当たりの容量制限の関係で、別ページに分割 筍・竹・桜について ◆筍 MOD導入後に生成された森林・山岳バイオームのChunksにて、一定確率で草・土ブロック上に配置される。 採取方法が特殊で、クワを使って破壊しないと回収できずに消滅する。 回収した筍は、草・土ブロック上にのみ植えられる(というか、真下が草・土ブロックな座標にしか存在できない) 明るさLv7以上の日光以外の光を受けている場合に限り、時間経過により確率で竹に成長する。 骨粉を使うと即座に竹に変化するが、この場合も明るさLv7以上の日光以外の光が必要。 この他、高さ9ブロック以上に成長した竹の、根元の竹を中心とした3x3x3範囲内に一定確率で自然発生する。 (基本的に雨天時に発生しやすいが、雨が降っていない時でも超低確率で発生する) (この自然発生により耕地ブロック上に生成された場合、同時に真下の耕地ブロックを土ブロックに変える) ◆竹 自然配置はされない。明るさLv7以上の日光以外の光を受けた筍が、成長する形でのみ出現する。 サトウキビ同様に障害物判定はなく、すり抜けて移動できる。 サトウキビと違い、隣接マスに水場は必要ない。 筍と違い、成長に明るさは必要ない(明るさLv7以上の日光以外の光は、筍の段階でだけ必要とする) サトウキビと違い、最大で高さ10ブロックまで成長するが、成長スピードはかなり遅い。 素手で破壊できるが、節のどこか一箇所を破壊すると根元から先端まで全部がドロップアイテム化する。 (根元の1ブロックだけを収穫せずに残して、再び生えてくるのを待つ、という事はできない) サボテンやサトウキビと違い、収穫したものをブロックとして再設置できない。景観要員は竹ブロックが担当。 (筍から成長して伸びていったものだけが、マップ上にブロックとして存在できる形になる) 高さ9ブロック以上に成長した竹は、根元の竹を中心とした3x3x3範囲内に一定確率で筍を生やす。 (ただし真下のブロックが土・草・耕地のいずれかである場所にしか筍は出現できない) (耕地の場合、土・草に比べて筍の出現成功率が2倍) (基本的にこの増殖は雨天時に顕著だが、雨が降っていない時であっても超低確率で増える) 骨粉を使うと、即座に1ブロック分成長する(最大10ブロックまで) 高さ10ブロックに達した竹に更に骨粉を使うと、根元を中心とした3x3x3範囲内に高確率で筍が出現。 (真下のブロックが耕地である範囲にはより出現しやすくなる) ◆桜 MOD導入後に生成された森林・山岳バイオームのChunksにて、一定確率で草・土ブロック上に配置される。 葉ブロックはオリジナルのもので、明かりLv10の光源として機能、暗闇ではライトアップされる。 また通常の木と違い、散発的に桜の花びらが舞い散るエフェクトを伴う。 舞い散った桜の花びらが水面に落ちた場合、ごく短時間だが水面に浮く(ただし瞬く間に消滅する) 苗木は通常の木同様、葉ブロックが壊れた時に一定確率で出る。 アイコンは白樺の苗木と全く同じだが、アイテム名&内部データは別物の新規追加アイテム。 (v2.5.9.2以降)バニラの葉ブロックと違い、桜の葉ブロックは原木からの接続が断たれても時間経過で自然消滅しない。 桜の苗木を収集する場合は素手での地味な破壊か、扇子を使って吹き散らすのが推奨される。 (v2.5.9.2以降)原木は、見た目こそ松の原木と同じ見た目だが、BlockID上は別の原木扱い。 主にテクスチャパック作者に配慮した措置であり、バニラテクスチャ時は特に気にする必要がない。 原木を加工して得られる木材は、松の木材を流用しており、独自の木材ではない。 v2.5.6.6から、桜の苗木に骨粉以外の染料を使用すると、色付き桜に成長するようになった(全15色)。 違うのは葉ブロックの色だけで、原木は松、葉ブロックが壊れた際に一定確率で出る苗木も通常のものだが、 きちんと花びらは舞い落ちるし、明かりLv10の光源として暗闇ではライトアップされる。 + (画像で見る) 黒色(ブラック) 赤色(レッド) 緑色(グリーン) 茶色(ブラウン) 青色(ブルー) 紫色(パープル) 水色(シアン) 薄灰(ライトグレー) 灰色(グレー) 桃色(ピンク) 黄緑(ライム) 黄色(イエロー) 空色(ライトブルー) 赤紫(マゼンタ) 橙色(オレンジ) 袋の使い方 1.登録 収納したいブロックとクラフトする事で、そのブロックを袋に登録できる。 登録時に対象のブロックを1つ消費する。 2.収納 袋を手に持った状態でブロックが設置できない遠方を右クリックすると、 プレイヤーのインベントリ内にある登録ブロック全てが袋内に収納される(ただし最大16スタック1024個分まで) ⇒ 3.設置 袋を手に持った状態でブロックが設置できる(=ターゲッティングフレームが出る)近場を右クリックすると、 袋内に収納したブロックを1つ消費してその場所にブロックを設置する。 ⇒ また、スニークしながら(Shiftキーを押しながら)右クリックする事で、水上(溶岩上)にブロックを設置できる。 ただしこの機能が有効なのは液体源ブロックに対してだけで、液体流の上には設置できない。 ⇒ 4.排出 異種のブロックを登録し直すと、その前まで入っていた全ブロックがプレイヤーのインベントリ内に吐き出される。 ⇒ 実際に設置してのサンプル画像 ◆畳ブロック・茅葺きブロック 素手でも超高速撤去できる。 スニークしながら(Shiftキーを押しながら)設置済みの畳・茅葺きブロックを右クリックすると、半ブロック化。 また茅葺きの階段はバニラの階段同様、逆さまに設置する事ができる。 ◆竹柵 設置法則は窓ガラスと同じ。素手でも超高速撤去できる。 強度はさほどでもなく、水流・溶岩流が接触するとアイテム化してしまう。 ◆クッションブロック 撤去にはほんの少しだけ時間がかかる。対応ツールは特に無い。 (左) 一段では高さ16までの落下ダメージしか無効化できない。17以上から落ちるとそのままダメージを喰らう。 (右) 二段重ねると高さ17以上からの落下ダメージも無効化できる。高度250から落ちてもダメージなし。 強度はさほどでもなく、水流・溶岩流が接触するとアイテム化してしまう。 ◆ふすま・障子 どちらも1クリックで撤去可能。 鉄ブロックで示したエリアにプレイヤーが踏み込むと、自動で左右にスライドして開く。 懐き状態のモブ(狼、山猫)には反応するが、それ以外の動物、モンスター、Entityには反応しない。 下の画像のようにスライド先に障害物があったとしても問題なく動作する。 強度は非常に弱く、水流・溶岩流の他、矢による攻撃を受けてすらドロップアイテム化してしまう。 表と裏が同じ模様なふすまに対し、障子は表裏の模様が違い、スニークしながら設置で表裏反転設置ができる。 更に設置後にスニークしながら右クリックすると、自動ドア機能をOn/Offできる。 Offの状態でも右クリックすれば手動で開閉できる。 Offの状態で左クリックするとアイテム化させずに設置位置の微調整ができる。 (左クリック毎にプレイヤーの向いている方角へ0.1ブロック分押し込む) ◆行灯・布団 どちらも1クリックで撤去可能。 行灯は明るさLv13の光源(松明よりもLv1だけ暗い) MC1.2.5までは実体&当たり判定が無かったが、MC1.3.2からは見た目通りの実体&当たり判定を得た。 普通に照明具として使用する。 布団は右クリックで座れ、座ってから5秒待つと太陽&月の動きが早送り、通常の20倍の速さで時間が流れ出す。 ただしMobの動きだとか、作物の成長だとか、かまどの精錬速度とか、そういうものは加速されない。 あくまで加速するのは太陽&月の移動速度だけであり、手っ取り早く昼を夜に、夜を昼にするために使用する。 どちらも水流・溶岩流が接触するとアイテム化する。 ◆風鈴 1クリックで撤去可能。 別に天井に吊るす必要はなく、床・壁・天井、どこにでも自由に設置できる。 設置してあると、稀にチリンと微かな音を立てる他、時間経過によって短冊が揺れたり角度が変わったりする。 水流に押し流されない。 ◆掛け軸 1クリックで撤去可能。 絵画と同じように設置・撤去する。サイズは縦2x横1または縦3x横1のものしかない。 バリエーション豊富。サイズ3のものの絵柄は、主に花札の10点札・20点札のものが使われている。 水流・溶岩流が接触するとアイテム化する。 ◆狐火 狐火を手に持った状態なら1クリックで撤去可能。 明るさLv15の光源。アイテムとしての狐火を手に持った状態でのみ本体を視認できる。 狐火を手に持っていない状態では視認できず、完全に透明に。 v2.4.0から透明状態のは左クリックしても撤去できなくなった。狐火を持った状態でのみ撤去回収できる。 ただし透明状態であっても、水流・溶岩流が接触した場合は押し流されてアイテム化する。 モブごとの刀の有効度&追加ドロップ一覧 v2.5.8.5(MC1.4.2)から追加。 肉体を持つモブには効果が高いが、逆に肉体を持たないモブにはほとんど効果がない武器。 耐久値は151しかなく、鉄の剣の6割に相当。 刀によるダメージでトドメを刺した場合、(基本的に低確率でだが)追加ドロップが発生する事がある。 + (ネタバレに付き格納、クリックで開く) 通常のレアドロップ(刀で倒さなくても1%程度の確率で落とす)との混同に注意。 モブの種類 ダメージ 刀限定の追加ドロップ 鶏 6.0 小麦の種0-2(期待値0.3) 豚 6.0 皮0-1(期待値0.4) 羊 6.0 クモ糸0-2(期待値0.4) 雑草0-1(期待値0.25) 牛 6.0 雑草0-1(期待値0.25) キノコ牛 6.0 雑草0-1(期待値0.25) 狼 6.0 牛肉0-1(期待値0.2) 豚肉0-1(期待値0.2) 鶏肉0-1(期待値0.2) 羽根0-1(期待値0.2) 骨0-1(期待値0.2) 山猫 6.0 生魚0-2(期待値1.0) 蝙蝠 6.0 リンゴ0-1(期待値0.3) クリーパー 4.0 - ゾンビ 4.0 皮(期待値0.2) 骨(期待値0.2) ゾンビピッグマン 4.0 皮(期待値0.2) 骨(期待値0.2) ガスト 3.0 TNT1(期待値1.0) ファイアチャージ1-2(期待値1.5) エンダーマン 3.0 黄の花0-1(期待値0.2) 赤の花0-1(期待値0.2) 茶キノコ0-1(期待値0.2) 赤キノコ0-1(期待値0.2) シルバーフィッシュ 3.0 紙0-2(期待値1.0) ウィッチ 3.0 蓮の葉0-1(期待値0.5) スパイダー 3.0 - ケイブスパイダー 3.0 - イカ 3.0 - 村人 3.0 - ブレイズ 2.5 - スケルトン 1.0 - ウィザースケルトン 1.0 - スノーゴーレム 0.5 - アイアンゴーレム 0.5 - スライム 0.0 - マグマキューブ 0.0 - 温泉について ただしv2.5.9.2以降は10~20秒間、移動せずにじっと温泉に浸かっていないとポーション効果は付かなくなった。また、最低でも縦横2x2サイズ以上でないと、狭すぎてくつろげないからかポーション効果が付かなくなった。 ピストンのような見た目だが、素手でも1クリックで撤去可能。 設置した温泉ユニットを右クリックするとonになり、非常に緩慢な速度でだが徐々にお湯が湧き出し周囲に広がる。 ⇒ 上方向に対しては、温泉ユニットが設置された段を底部と見なしつつ高さ1までしかお湯は張られないが、 横方向に対しては、お湯をせき止めるための敷居が無い場合、際限なくあふれ広がっていく(8マスで止まらない) 下方向に対しても、段差があるならばそれを下りつつどんどん下へと流れ落ちていく。 広がっていく最中や、段差がある場所においては、通常の水源と同じような水流が発生するが、 この水流は見た目だけのものであり、通常の水流と違ってプレイヤーやMob、ドロップアイテムを押し流す作用は持たない。 (ボートを浮かべる事はできるが、やはりプレイヤーの入力操作でしか動かない) そのまま浸かっても、およそ4秒毎にハート0.5個分のペースで徐々に体力が回復する効果がある。 染料(全16色)を投げ込むと、投げ込んだ染料に応じてお湯に色がつく。 特定の色を一定数以上投げ込むと、透明温泉時の徐々に体力回復効果が失われる代わりに、 浸かった際に色に応じて特定のポーション効果が得られるようになる。 しかし、投げ込みすぎると毒の温泉になってしまい、浸かると毒の状態異常に冒されるようになる。 もっとも、5~6個程度の染料を投げ込んだ程度では効果は得られず、 おおよそ20~40個、染料によってはもっと大量に投げ込まないとポーション効果は発現せず、湯の色も変わらない。 また、続けて複数の温泉に入る事で簡単に複数のポーション効果を得るのを防止する措置で、 一度ポーション効果ありの温泉に入ると、1分経過しなければ他の温泉に入っても効果が得られないようになっている。 更に、バケツetc.で汲み取ると普通の水になってしまう。当然ながら色や効果も反映されない。 on状態の温泉ユニットをもう一度右クリックするとoffになり、 その温泉ユニットから溢れ出した全ての温泉水が高速で回収・撤去される。 この時に染料の投入情報もリセットされ、再度onにすると再び何の効果もない無色の温泉水が湧き出す。 温泉の色とポーション効果は次のように決まる + (ネタバレに付き格納、クリックで開く) 無色系 入浴中のみ 約4秒毎にハート0.5個分体力回復。ポーション効果ではなく別物扱い。 赤系 効果時間 4分 Strength II (攻撃力+3.0) の効果 青系 効果時間 4分 Speed II (移動速度+40%) の効果 緑系 効果時間 3分 Fire Resistance (炎・溶岩・雷無効) の効果 灰系 効果時間 1分 Regeneration II (0.5秒毎にハート0.5個分体力回復) の効果 入れ過ぎ 効果時間 1分 Poison II (0.5秒毎に0.5ダメージ) の効果 ポーション効果は固定であり、染料の投入数によって効果がパワーアップしたり、効果時間が延びたりはしない。 三原色の法則が適用されている。 赤・青・緑のどの色相の値も一定値以下 → ただの温泉 三種の色相の内、赤の値が一定以上、かつ他の二色よりも突出して高い。 → Strength II (4分間) 三種の色相の内、青の値が一定以上、かつ他の二色よりも突出して高い。 → Speed II (4分間) 三種の色相の内、緑の値が一定以上、かつ他の二色よりも突出して高い。 → Fire Resistance (3分間) 三種の色相の内、いずれか二色の値が高く、残り一色が突出して低い。 → ただの温泉 三種の色相が均等に混ざり、かつ混色の度合いが強すぎず弱すぎず → Regeneration II (1分間) 三種の色相が均等に混ざり、ただし混色が進みすぎて黒化が一定以上 → Poison II (1分間) 白(ホワイト) Bone Meal 何個投入しても温泉の色に全く影響を与えない。 黒(ブラック) Ink Sac 何個投入しても温泉の色に全く影響を与えない。 黄(イエロー) Dandelion Yellow 【1~128】ただの温泉 橙(オレンジ) Orange Dye 【1~128】ただの温泉 紫(パープル) Purple Dye 【1~128】ただの温泉 赤色(レッド) Rose Red 【1~32】ただの温泉 【33~128】攻撃 青色(ブルー) Lapis Lazuli 【1~32】ただの温泉 【33~128】加速 緑色(グリーン) Cactus Green 【1~32】ただの温泉 【33~128】耐火 桃色(ピンク) Pink Dye 【1~32】ただの温泉 【33~40】攻撃 【41~64】ただの温泉 【65~128】毒 空色(ライトブルー) Light Blue Dye 【1~32】ただの温泉 【33~40】加速 【41~64】ただの温泉 【65~128】毒 黄緑色(ライム) Lime Dye 【1~32】ただの温泉 【33~40】耐火 【41~64】ただの温泉 【65~128】毒 水色(シアン) Cyan Dye 【1~40】ただの温泉 【41~64】再生 【65~128】毒 灰色(グレー) Gray Dye 【1~40】ただの温泉 【41~64】再生 【65~128】毒 薄灰色(ライトグレー) Light Gray 【1~80】ただの温泉 【81~128】再生 赤紫色(マゼンタ) Magenta Dye 【1~20】ただの温泉 【21~32】再生 【33~128】毒 茶(ブラウン) Cocoa Beans 【1~16】ただの温泉 【17~32】攻撃 【33~128】毒
https://w.atwiki.jp/mod-jplang/pages/31.html
AFSU mod説明 大容量の蓄電器追加 AFSUの日本語langファイル置き場です。 下にバージョンのリンクがあるのでそこから飛んでください。 ↓リンク↓ MC1.7.10
https://w.atwiki.jp/vagante_jp/pages/118.html
Mod作成方法 当ページでは、Modの作り方について紹介する。 概要 Vaganteのプレイヤーキャラや敵の画像、音楽などは、data.vraファイルで管理されている。 data.vraファイル内で管理されているキャラクター画像などを参考に、自作の画像を作成し、data.vraの画像と差し替える事で、自作した画像でゲームをプレイする事ができる。 ただし、data.vraは1つのファイルとなっており、編集できないようになっている為、後述の紹介ページに記載されている通り、アンパックツールでdata.vraの内部データを取得したりする必要がある。 以下、data.vraのイメージ図(フォルダ構成は一部省略してます) スキンMODの作り方 燻丸様のページで作り方の説明があるので、こちらを参考にすると良いでしょう。 燻丸のメモ帳_スキンMODの作り方 インストーラーの紹介 従来のmodの適用方法の場合は、手動でmodsフォルダにmodを格納し、その後にPowerShellの実行を行う必要があったが、このインストーラーを使うことにより、「従来のmod適用方法」または「data.vraへの直接インストール」を選ぶことが出来る。 インストーラーの使い方などについては、下記ページを参照。 ちくぼん_インストーラーの解説 ちくぼん_インストーラーのダウンロード先 コメント欄 名前 最新40件を表示しています。Mod作成方法_ログ全文 コメント左側の◯をクリックしてから書き込むと、レス形式でコメントできます。
https://w.atwiki.jp/gunjibu/pages/29.html
まだ情報が曖昧なところがあります。情報提供お願いします。 銃系 Mod名 説明 作者 SMP Ver. TheGunMod アサルトライフルや、スナイパーライフルなど、多数の銃を追加する。また、環境を作れば、Modの銃も自分で作成可能。MinecraftForgeが必要。 Heuristix 1.4.7 FN5728Guns FN社のP90とFive-SevenNを追加する。littleMaidMobに持たせることも可能。ModLoaderとMMMLibが必要。ModLoaderをMinecraftForgeに代用してもOK。 MMM 1.6.2 PortalGun PCゲーム「Portal」に登場するアイテムを追加する。MinecraftForgeが必要。 iChun 〇 1.6.X 乗り物系 Mod名 説明 作者 SMP Ver. Flan'sMod 飛行機や戦車、銃火器を追加する大型Mod。乗り物などを追加するには、「Content Packs」というパックを導入する必要がある。解説MinecraftForgeが必要。 jamioflan 〇 1.6.4 THX helicopter リアルな動きをするヘリコプターを追加する。テクスチャも自分で変更できるため、よりリアルなヘリも作成できる。ModLoaderとModLoaderMPが必要。解説 Theoxylo 〇 1.6.1 MCヘリコプターMOD 実在するヘリコプターと戦闘機などを追加する。0.7.0アップデートにより、零戦や戦艦大和に搭載されていた対空兵器なども追加された。拡張パックもあり、航空機の数は豊富。MinecraftForgeが必要。MODWiki EMB4 〇 1.6.4 その他(Zeppelin・装飾系) Mod名 説明 作者 SMP Ver. Zeppelin 建築したものを、自由自在に動かせるようにするブロックを追加する。ModLoaderが必要。解説 blakmajik × 1.2.5 HariboteAirCraft 建築したものを、”ハリボテ化”して動かすMod。Zeppelinの上位互換。MinecraftForgeが必要。 わこちゅ 〇 1.6.4 Archimedes' Ships Zeppelinを、作者が復活させたMOD。やや仕様が違っていて、ブロックを起動した時に、水に浮かんだような挙動をしたり、水が消失しないようになっている。MinecraftForgeが必要。 BalkondeurAlpha 〇 1.6.4 斜面ブロック 建築に使用する斜面ブロックを大量に追加する。戦艦や戦車をなめらかにするのに有効。MinecraftForgeが必要。 mrtska 〇 1.6.4 竹MOD 主に和の要素を追加するMOD。このMODで追加される「爆竹」を兵器転用することができる。MinecraftForgeが必要。 ruby 〇 1.6.4 Metaworlds mod zeppelin MODを1.6.4に移植した感じのMOD。動かしながらのブロックの設置、破壊、TNTなどによる破壊などもあり、かなり有用なMOD。MinecraftForgeが必要。 MMM_MasterM 〇 1.6.4 Ships Mod zeppelin MODの船verのようなMOD。ブロックの設置、破壊などはできないが、水を空気ブロックと置換する機能があるため浸水がない。将来的には潜水艦もできる予定らしい。MinecraftForgeが必要。 Cuchaz 〇 1.6.4 おすすめなMODがあれば、編集するか、コメントでいえば追加されると思います。 zeppelin! -- hiro (2012-05-20 16 38 49) Flan s MODですかね -- アル (2012-05-20 17 26 21) TheGunMODもいいですよ -- JagdTiger (2012-06-25 13 44 35) UGOクラフトもええと思うで! -- 兵器工場の人 (2012-08-15 15 04 55) ICBMとかもどうでしょう? -- 名無しさん (2012-12-03 02 21 23) お手軽さならFN5728Guns -- 名無しさん (2012-12-03 02 22 27) 飛行機MODやTHXヘリコプターMOD等が扱いやすいのでおすすめです。 -- 名無しさん (2013-03-26 23 05 34) 軍事生活にはcampcraft! -- 名無しさん (2013-04-06 16 54 50) はりぼてエアクラフト こいつが一番いい -- 名無しさん (2013-06-22 18 45 37) ポータルガンMODもいい -- 名無しさん (2013-08-09 09 10 29) 斜面ブロックMODもいいよ! -- 名無しさん (2013-08-22 19 55 21) Archimedes ships を忘れてるぞ -- 名無しさん (2013-10-07 13 27 30) MCヘリコプターMOD。ヘリの兵装も充実してる。 -- 六方晶ダイヤモンド (2013-10-07 20 31 35) エイリアンvsプレデター名前のとおりですがリアルな銃を追加します -- 名無しさん (2013-11-05 16 36 57) Flan sModはコンテンツパックが多く存在しているので、紹介として解説ページを作ってはいかがでしょうか -- 名無しさん (2013-12-15 15 39 21) ↑作るとしたらwikiもあるから、こっちは各コンテンツパックの大雑把な説明と適当なSSだけでwikiの方に誘導したほうがいいかもしれんね もちろんこっちの方を充実させるというのもいいと思うけど -- 名無しさん (2013-12-23 20 56 43) worldeditなんか巨大建築時にオススメですよ -- SouthernCross (2013-12-24 01 16 35) 置き型の対空機銃教えてください -- SONY1123 (2013-12-27 02 54 11) ↑少なくとも俺が知ってる範囲ではFlan sMODであったよ、MODWiki行って探せばきっと見つかるかと -- 如月紅爍 (2013-12-27 04 05 43) ↑たしか対空砲やめっちゃリアルなシャーマンやタイガーもあったな -- 名無しさん (2014-02-10 20 13 17) Ships Mod http //www.planetminecraft.com/mod/beta-ships-mod---make-a-sailable-ship-out-of-blocks/ と Metaworlds mod http //www.minecraftforum.net/topic/1948191-164-metaworlds-mod-v0985-fly-working-worlds-around-forgeinstaller/ はかなりすごいです。革命モンかと -- reido (2014-03-13 20 17 05) 上記二つを追加しました。これで軍事部に革命を…… -- reido (2014-03-13 20 40 29) 仕事早い -- ROMAN (2014-03-13 21 44 24) 上記2つのMod試してきました。MetaworldsはHACと比べると一長一短。水流装甲が効かない、ブロック同士の当たり判定がない。重いなど問題点もあるが、HACの上位互換。移動しながらのキャノン発射などもできるので作った戦車で戦争したい方向け。HACと競合。 ShipsModはブロック制限があって戦艦向けではない。 -- ROMAN (2014-03-13 22 46 02) まあまだどちらも作り始めてすぐみたいですからねww今後に期待と言うことでw ships mod ha -- reido (2014-03-14 09 34 38) ↑はミスです。」 ships mod も作り始めてすぐのやつですしベータ版です。フォーラムに書いてある通りそのうちブロックの制限はなくすと言っています。レッドストーンも少しだけうごかせる見たいなのでその辺も考えたうえで期待しましょうww長文失礼しました -- reido (2014-03-14 09 37 15) BASIC GUNS MOD!も, -- フル・フロンタル (2014-03-26 19 04 43) おすすめですよ。おもに、銃を追加するMODです。() -- フル・フロンタル (2014-03-26 19 07 33) すいません。打ち間違えました。 -- フル・フロンタル (2014-03-26 19 08 37) 1.2.5だがShips and BoatsってModかなり良いと思うぞ -- 名無しさん (2014-07-17 19 26 10) ゲリラvsコマンド -- 名無しさん (2014-12-27 15 21 59) ■ゲリラvsコマンド -- aasu (2015-01-19 22 19 49) 砲弾MODっていうのを普及させたいです。まだ多少バグが多いですが楽しいですよ -- 名無しさん (2015-02-22 11 51 45) ゲリラVSmod -- asa (2015-03-19 15 09 52) 追加して損ではないと思われるMOD -- 名無しさん (2015-07-23 01 49 14) 深これMOD、MMD(みくみくだんす)MOD これで戦闘が面白くなるんじゃないですかね(モチベーションの面で) -- 名無しさん (2015-07-23 01 56 01) ↑それ関係ないじゃん CustomSteveMODなら分かるが -- 名無しさん (2015-09-19 14 38 11) ゲリラは無いのか… -- 名無しさん (2016-09-25 00 05 34) FN5728Gunsの下に発展型としてgvcguns入れてもいいと思うの というか多くの人はfn5728単体じゃなくてgvcgunsを入れてやってるだろうからね -- 名無しさん (2016-10-28 18 04 10) Metaworlds modの入れ方がいまいち分からないんですけど誰か教えてください -- 名無しのミカンゼリー (2018-03-14 12 52 49) ゲリラMODは? -- 名無しさん (2018-03-30 17 14 38) 驫ノodVic's Modern Warfare Mod 縺後>縺?◇繧 -- Ayuria_7 (2018-04-22 14 16 17) GVCGunsもいいと思います -- ゲリラ (2018-10-06 09 50 51) お、おう -- 名無し (2020-08-28 08 51 41) 名前 コメント
https://w.atwiki.jp/akasatanahama/pages/102.html
概要 MOBを追加する。 今回は、匠型のMOBを追加する。 ソースコード AluminiumMod.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EnumCreatureType; import net.minecraft.item.Item; import net.minecraft.world.biome.BiomeGenBase; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @Mod(modid = "AluminiumMod", name = "Aluminium Mod", version = "1.0.0") public class AluminiumMod { //追加するアイテムの宣言 public static Item aluminiumEgg; @EventHandler public void perInit(FMLPreInitializationEvent event) { //Itemのインスタンスを生成し、代入する aluminiumEgg = new ItemAluminiumEgg() //クリエイティブタブの登録 .setCreativeTab(CreativeTabs.tabMaterials) //システム名の登録 .setUnlocalizedName("aluminiumEgg") //テクスチャ名の登録 .setTextureName("aluminiummod aluminiumEgg"); //GameRegistryへの登録 GameRegistry.registerItem(aluminiumEgg, "aluminiumEgg"); } @EventHandler public void init(FMLInitializationEvent event) { //Entityを登録する EntityRegistry.registerModEntity(EntityAluminiumCreeper.class, "AluminiumCreeper", 0, this, 250, 1, false); //Entityの自然スポーンを登録する EntityRegistry.addSpawn(EntityAluminiumCreeper.class, 20, 1, 4, EnumCreatureType.creature, BiomeGenBase.plains); /*EntityのRenderを登録する *Client側でのみ登録するため、今回はif文で処理をする。*/ if(FMLCommonHandler.instance().getSide() == Side.CLIENT) { this.render(); } } @SideOnly(Side.CLIENT) public void render() { RenderingRegistry.registerEntityRenderingHandler(EntityAluminiumCreeper.class, new RenderAluminiumCreeper()); } } EntityAluminiumCreeper.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.block.material.Material; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIAttackOnCollide; import net.minecraft.entity.ai.EntityAIAvoidEntity; import net.minecraft.entity.ai.EntityAIHurtByTarget; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAINearestAttackableTarget; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.entity.passive.EntityPig; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.AchievementList; import net.minecraft.util.ChatComponentText; import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityAluminiumCreeper extends EntityMob { public EntityAluminiumCreeper(World world) { super(world); /*EntiyのAIを登録する*/ this.tasks.addTask(1, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPig.class, 1.0D, false)); this.tasks.addTask(2, new EntityAIAvoidEntity(this, EntityOcelot.class, 6.0F, 1.0D, 1.2D)); this.tasks.addTask(3, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); this.tasks.addTask(4, new EntityAIWander(this, 0.8D)); this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(6, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPig.class, 1,false)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 1, true)); this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false)); } /**MOBの速度やHPを変更するメソッド*/ @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5D); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(128D); this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(100D); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(1.5D); } /**MOBの属性を返すメソッド*/ @Override public EnumCreatureAttribute getCreatureAttribute() { return EnumCreatureAttribute.UNDEFINED; } /**MOBのドロップアイテムを返すメソッド*/ @Override public Item getDropItem() { return Item.getItemFromBlock(Blocks.wool) ; } /**MOBのドロップアイテムをドロップさせるメソッド*/ @Override protected void dropFewItems(boolean isCanDropRare, int fortuneLv){ Item item = this.getDropItem(); int amount = 1; if(isCanDropRare this.rand.nextBoolean()) { item = Item.getItemFromBlock(Blocks.stained_glass); } if(fortuneLv 0) { amount += fortuneLv; } int damage = this.rand.nextInt(16); for(int i = 0; i amount; i++) { this.entityDropItem(new ItemStack(item, amount, damage), 0.0F); } } /**Tickごとに呼ばれるメソッド*/ @Override public void onUpdate() { int x = (int) this.posX; int y = (int) this.posY; int z = (int) this.posZ; if(this.worldObj.getBlock(x, y - 1, z).getMaterial() == Material.iron) { this.worldObj.createExplosion(this, x, y, z, 3F, true); } super.onUpdate(); } /**MOB死亡時に呼ばれるメソッド*/ public void onDeath(DamageSource source) { super.onDeath(source); if(source.getSourceOfDamage() != null source.getSourceOfDamage() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) source.getSourceOfDamage(); if(!this.worldObj.isRemote) { player.addChatMessage(new ChatComponentText("You slayed.")); player.triggerAchievement(AchievementList.mineWood); } } } /**ダメージを食らうか否かを判定するメソッド*/ @Override public boolean attackEntityFrom(DamageSource source, float damage) { if(source.isExplosion()) { return false; } else if(source.isFireDamage()) { return super.attackEntityFrom(source, damage * 2); } else { return super.attackEntityFrom(source, damage); } } } RenderAluminiumCreeper.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderAluminiumCreeper extends RenderLiving { public RenderAluminiumCreeper() { super(new ModelAluminiumCreeper() , 0.5F); } /**テクスチャを登録するメソッド*/ @Override protected ResourceLocation getEntityTexture(Entity entity) { return new ResourceLocation("aluminiummod textures/mobs/aluminium_creeper.png"); } } ModelAluminiumCreeper.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class ModelAluminiumCreeper extends ModelBase { public ModelRenderer head; public ModelRenderer head2; public ModelRenderer body; public ModelRenderer leg1; public ModelRenderer leg2; public ModelRenderer leg3; public ModelRenderer leg4; public ModelAluminiumCreeper() { this(0.0F); } /**Modelを登録するメソッド*/ public ModelAluminiumCreeper(float size) { byte b0 = 4; this.head = new ModelRenderer(this, 0, 0); this.head.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, size); this.head.setRotationPoint(0.0F, (float)b0, 0.0F); this.head2 = new ModelRenderer(this, 32, 0); this.head2.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, size + 0.5F); this.head2.setRotationPoint(0.0F, (float)b0, 0.0F); this.body = new ModelRenderer(this, 16, 16); this.body.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, size); this.body.setRotationPoint(0.0F, (float)b0, 0.0F); this.leg1 = new ModelRenderer(this, 0, 16); this.leg1.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, size); this.leg1.setRotationPoint(-2.0F, (float)(12 + b0), 4.0F); this.leg2 = new ModelRenderer(this, 0, 16); this.leg2.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, size); this.leg2.setRotationPoint(2.0F, (float)(12 + b0), 4.0F); this.leg3 = new ModelRenderer(this, 0, 16); this.leg3.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, size); this.leg3.setRotationPoint(-2.0F, (float)(12 + b0), -4.0F); this.leg4 = new ModelRenderer(this, 0, 16); this.leg4.addBox(-2.0F, 0.0F, -2.0F, 4, 6, 4, size); this.leg4.setRotationPoint(2.0F, (float)(12 + b0), -4.0F); } /**Modelをレンダリングするメソッド*/ public void render(Entity entity, float f1, float f2, float f3, float yaw, float pitch, float size) { this.setRotationAngles(f1, f2, f3, yaw, pitch, size, entity); this.head.render(size); this.body.render(size); this.leg1.render(size); this.leg2.render(size); this.leg3.render(size); this.leg4.render(size); } /**頭、足、腕などの角度を設定するメソッド*/ public void setRotationAngles(float f1, float f2, float f3, float yaw, float pitch, float size, Entity entity) { this.head.rotateAngleY = yaw / (180F / (float)Math.PI); this.head.rotateAngleX = pitch / (180F / (float)Math.PI); this.leg1.rotateAngleX = MathHelper.cos(f1 * 0.6662F) * 1.4F * f2; this.leg2.rotateAngleX = MathHelper.cos(f1 * 0.6662F + (float)Math.PI) * 1.4F * f2; this.leg3.rotateAngleX = MathHelper.cos(f1 * 0.6662F + (float)Math.PI) * 1.4F * f2; this.leg4.rotateAngleX = MathHelper.cos(f1 * 0.6662F) * 1.4F * f2; } } ItemAluminiumEgg.java +長いので囲みます package tutorial.aluminiummod; import net.minecraft.block.Block; import net.minecraft.block.BlockLiquid; import net.minecraft.entity.Entity; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.Facing; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; /**このクラスは、net.minecraft.Item.ItemMonsterPlacerをもとに作成しています。*/ public class ItemAluminiumEgg extends Item { /**アイテムでブロックを右クリックしたのメソッド。ItemMonsterPlacer参照。*/ @Override public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float posX, float posY, float posZ) { //サーバー側の場合は処理をスキップする if (world.isRemote) { return true; } else { Block block = world.getBlock(x, y, z); x += Facing.offsetsXForSide[side]; y += Facing.offsetsYForSide[side]; z += Facing.offsetsZForSide[side]; double height = 0.0D; if (side == 1 block.getRenderType() == 11) { height = 0.5D; } Entity entity = spawnEntity(world, (double)x + 0.5D, (double)y + height, (double)z + 0.5D); if (entity != null) { if (!player.capabilities.isCreativeMode) { --itemStack.stackSize; } } return true; } } /**アイテムを使ったときのメソッド。ItemMonsterPlacer参照。*/ @Override public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) { //サーバー側の場合は処理をスキップする if (world.isRemote) { return itemStack; } else { MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, true); if (movingobjectposition == null) { return itemStack; } else { if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { int x = movingobjectposition.blockX; int y = movingobjectposition.blockY; int z = movingobjectposition.blockZ; if (!world.canMineBlock(player, x, y, z)) { return itemStack; } if (!player.canPlayerEdit(x, y, z, movingobjectposition.sideHit, itemStack)) { return itemStack; } if (world.getBlock(x, y, z) instanceof BlockLiquid) { Entity entity = spawnEntity(world, (double)x, (double)y, (double)z); if (entity != null) { if (!player.capabilities.isCreativeMode) { --itemStack.stackSize; } } } } return itemStack; } } } /**Mobをスポーンさせるメソッド*/ public Entity spawnEntity(World world, double x, double y, double z) { EntityAluminiumCreeper entityliving = new EntityAluminiumCreeper(world); entityliving.setLocationAndAngles(x, y, z, MathHelper.wrapAngleTo180_float(world.rand.nextFloat() * 360.0F), 0.0F); entityliving.rotationYawHead = entityliving.rotationYaw; entityliving.renderYawOffset = entityliving.rotationYaw; entityliving.onSpawnWithEgg((IEntityLivingData)null); world.spawnEntityInWorld(entityliving); entityliving.playLivingSound(); return entityliving; } } 解説 AluminiumMod +長いので囲みます void registerModEntity(Class ? extends Entity entityClass, String entityName, int id, Object mod, int trackingRange, int updateFrequency, boolean sendsVelocityUpdates) Mod用のMOBを追加するメソッド。 引数は、以下の通り。 引数 内容 entityClass 追加するEntityをClass型で渡す。 entityName 追加するEntityの名称。langファイルで、entity.[MODIDで登録した名称].[entityNameで登録した名称].name=[ローカル名]でローカル名を登録できる。 id 追加するEntityのID。同一MOD内で被るとエラーを吐く。 mod MODを渡す。thisで渡せばOK。 trackingRange MOBの更新範囲。 updateFrequency MOBの更新頻度。何tickごとにMOBを更新するかの値。基本的に2以下の値を渡す。 sendsVelocityUpdates MOBの更新時に加速度の情報を更新させるか否か。MOBや動物の場合は基本的にtrueを渡す。 void addSpawn(Class ? extends EntityLiving entityClass, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, BiomeGenBase... biomes) Entityの自然スポーンを追加するメソッド。 引数は、以下の通り。 引数 内容 entityClass スポーンを追加させるEntityをClass型で渡す。 weightProb Entityのスポーンがどれくらいの頻度で抽選されるかの値。値が大きいほうがスポーンしやすい。 min Entityがスポーンする際の最低数。 max Entityがスポーンする際の最高数。 typeOfCreature Entityのスポーンタイプ。EnumCreatureType一覧-monster...敵性MOBの属性。夜にスポーンする。-creature...友好MOB(とオオカミ、ヤマネコ)の属性。昼にスポーンする。-ambient...コウモリの属性。-waterCreature...イカの属性。これのみ、スポーン場所が空気中でなく水中になる。 biomes Entityがスポーンするバイオーム。複数バイオームを渡す場合は、先にfinal定数でリストを作ってからそのリストをそのまま引数に渡した方がいい。 void registerEntityRenderingHandler(Class ? extends Entity entityClass, Render renderer) Entityのレンダーを追加するメソッド。 Client限定の処理であり、Serverで処理してしまうとクラッシュの原因になるため、必ずif文とSideOnlyアノテーションを付けたメソッドで処理をする。 もしくは、proxyで分化させる手もある。 第一引数には登録EntityをClass型で、第二引数は登録Renderをインスタンス型で渡す。 EntityAluminiumCreeper +長いので囲みます tasks.addTask(int p_75776_1_, EntityAIBase p_75776_2_) Entityに攻撃、移動AIを追加するメソッド。 ターゲットAIは後述のtargetTasks.addTaskを用いる。 第一引数はAIの順位(小さいほうが先に行動される。)、第二引数がAI。 主なAI EntityAISwimming(EntityLiving p_i1624_1_) 水を泳ぐAI。 第一引数にはthisを渡す。 EntityAIAttackOnCollide(EntityCreature p_i1635_1_, Class p_i1635_2_, double p_i1635_3_, boolean p_i1635_5_) 特定のEntityを襲うAI。 第一引数にはthis、第二引数には襲う対象のEntityをクラス型で、第三引数には自分の通常移動速度に対する倍率、第四引数には追い続けるか否かの判定を渡す。 第三引数が1より大きいと、通常の移動スピードより高速で襲ってくることになる。 EntityAIAvoidEntity(EntityCreature p_i1616_1_, Class p_i1616_2_, float p_i1616_3_, double p_i1616_4_, double p_i1616_6_) 特定のEntityから逃げるAI。 第一引数にはthis、第二引数には逃げる対象のEntityをクラス型で、第三引数には対象からどれだけ逃げるかの距離、第四引数には対象と十分離れたときの逃げる速度の倍率、第五引数には対象と近いときの逃げる速度の倍率を渡す。 第四引数 第五引数となれば、対象と近いときはより急いで逃げるようになる。 EntityAIWander(EntityCreature p_i1648_1_, double p_i1648_2_) うろうろするAI。 第一引数にはthis、第二引数には速度の倍率を渡す。 第二引数は、基本的に1より小さい値を渡す。 EntityAIWatchClosest(EntityLiving p_i1631_1_, Class p_i1631_2_, float p_i1631_3_) 特定のEntityを睨むAI。 第一引数にはthis、第二引数には睨む対象のEntityをクラス型で、第三引数は対象との距離を渡す。 第三引数が大きいと、対象が離れていても視認する。 EntityAILookIdle(EntityLiving p_i1647_1_) きょろきょろするAI。thisを渡す。 targetTasks.addTask(int p_75776_1_, EntityAIBase p_75776_2_) EntityにターゲットAIを追加するメソッド。 第一引数はAIの順位(小さいほうが先に行動される。)、第二引数がAI。 主なAI EntityAINearestAttackableTarget(EntityCreature p_i1663_1_, Class p_i1663_2_, int p_i1663_3_, boolean p_i1663_4_) 特定のEntityをターゲッティングするAI。 第一引数にはthis、第二引数には対象のEntityをクラス型で、第三引数には行動しない確率(0だと攻撃できる場所に入れば必ずターゲッティングされる)、第四引数にはブロックに囲まれていてもターゲッティングするか否かを渡す。 第四引数をtrueにすると、ゾンビのように対象がブロックに囲まれていても、視認できれば攻撃しようとする。 EntityAIHurtByTarget(EntityCreature p_i1660_1_, boolean p_i1660_2_) 攻撃したEntityに反撃するAI。 第一引数にはthis、第二引数には反撃する際周囲の同種のEntityに助けを求めるか否かを渡す。 第二引数をtrueにすると、第一引数のEntityを攻撃したEntityは、第一引数と同種の周囲のEntityにも狙われる。ゾンビやゾンビピッグマンのような行動をする。 EntityLivingBase.getEntityAttribute(IAttribute p_110148_1_).setBaseValue(double p_111128_1_) Entityに対してHPやスピード等の数値を追加するメソッド。 getEntityAttributeに追加する数値の種類、setBaseValueにその値を渡す。 引数一覧 すべてSharedMonsterAttributesのstatic定数である。 定数名 説明 既定値 movementSpeed 移動速度 0.7(ただし、バニラのMOBは基本的に0.25) followRange 追跡距離 32 knockbackResistance ノックバック耐性 0 maxHealth 体力 20 RenderAluminiumCreeper ResourceLocation(String p_i1293_1_) Entityなどでテクスチャを指定する際につかうコンストラクター。 "aluminiummod textures/mobs/aluminium_creeper.png"のように、ファイルと修飾子まで入れる必要がある。 また、テクスチャを実装する場合は、今回のものはモデルをクリーパーのものを流用したため、クリーパーのテクスチャをaluminiummod/mobs/に放り込んでaluminium_creeperと名前を付ければよい。 ItemAluminiumEgg spawnEntityInWorld(Entity p_72838_1_) Entityをワールドにスポーンさせるメソッド。 ただし、setLocationAndAnglesなどで先にスポーン位置を指定する必要がある。 Tips クリーパーに因んでEntityを光らせる方法と爆発を発生させる方法を説明する。 Entityを光らせる 以下のコードを追加する。 @SideOnly(Side.CLIENT) public int getBrightnessForRender(float p_70070_1_) { return 15728880; } public float getBrightness(float p_70013_1_) { return 50.0F; } getBrightnessForRenderが描画側、getBrightnessが計算側に明るさを渡す。数値はこれらが最大値である。 爆発を発生させる 爆発を発生させる方法は二種類ある。どちらもWorldクラスに属する。 createExplosion(Entity entity, double x, double y, double z, float power, boolean destroyBlocks) 引数は発生Entity(このEntityは爆発によるダメージ、処理から除外されることになる)、座標(double三つ)、威力(大体土ブロックでの爆発半径に等しい。威力15以上は何故か正方形状に削れてしまう上範囲がほぼ広がらないため別処理の実装が望ましい。匠CraftのEntityGiantCreeper参照。)、ブロックを破壊するか否か、となっている。 newExplosion(Entity entity, double x, double y, double z, float power, boolean destroyBlocks, boolean spreadFire) 最終引数以外上記と一緒。最終引数は炎を撒き散らすかどうか。ファイアボールのような処理にしか使わない。なお、上のcreateExplosionはこの関数にfalseを渡しているだけである。 また、この二つの関数はExplosion型を返すため、イベントの追加にある爆発のフック処理をこの爆発限定で行うことも出来る。 コメント この項目に関する質問などをどうぞ。 EntityAluminiumCreeperの解説のEntityLivingBase.getEntityAttributeの下にあるmaxHealth|体力|20|がミスってますよ - 名無しさん 2016-02-02 19 49 20 ご指摘ありがとうございます。修正いたしました。 - Tom Kate 2016-02-02 20 28 33 AluminiumModの解説の(Class ? extends Entity entityClass, String entityName, int id, Object mod, int trackingRange, int updateFrequency, boolean sendsVelocityUpdates)のObject modをthisを使わないで処理しようと思ったら何を入れればいいですか? - west_village 2016-08-08 21 53 19 public static final AluminumMod instance = new AluminumMod();のように、インスタンスを作ってインスタンスを引数に渡してください。 - Tom Kate 2016-08-08 22 37 24 匠Craftの光匠やグロウストーン匠のように、光るMOBを作る方法はありますか?(実際は光っていないのかもしれないのか…?) - あるふぁ 2017-05-30 19 48 05 追記いたします。ご確認ください。 - Tom Kate 2017-06-01 19 39 57 たびたびすみません。プレイヤーなど既存のMOBを光らせる方法はありますか? - あるふぁ 2017-06-01 20 53 42 返信遅くなりまして申し訳ありません。こちらのチュートリアルにTipsとして追記しました。 - Tom Kate 2017-06-07 19 27 42 追記できておりません。Tom氏が多忙のようですので、もうしばらくお時間いただくことになりそうです。申し訳ありません。 - 赤砂蛇凪浜 2017-06-16 18 11 48 名前
https://w.atwiki.jp/gyakumo/pages/128.html
はじめに起動設定って何? 起動設定の編集方法 MOD導入に関して はじめに 起動設定って何? アプリケーションを起動する際に、なんらかのパラメータ引数をアプリケーション側に渡す情報 起動設定の編集方法 アプリケーションのショートカットを右クリック⇒プロパティ "ショートカット"タブをクリック "リンク先(T)"内に、以下に記述する起動設定をコピー&ペースト (今後、アプリケーションを起動する際は必ずショートカットから起動すること) MOD導入に関して arma2.exeのあるディレクトリに、"arma2_swimming"というMODを導入する場合、 起動設定に、以下記述を加える "C \Program Files\Bohemia Interactive\ArmA 2\arma2.exe" -mod=arma2_swimming (例)steamゲームをDドライブ直下に置いている場合、以下の記述となる "D \Steam\steamapps\common\arma 2\arma2.exe" -mod=arma2_swimming 複数のMODフォルダを利用する場合は、セミコロンを利用すればよい "D \Steam\steamapps\common\arma 2\arma2.exe" -mod=arma2_swimming;Japanese;@CBA
https://w.atwiki.jp/civilization/pages/124.html
MOD/CivModChooser MODを選んで起動できます。なお、MOD Chooserの改良とかではなく、一切関係ありません。 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (Download) #ref error :ご指定のページがありません。ページ名を確認して再度指定してください。
https://w.atwiki.jp/bullet37/pages/80.html
前ページ次ページHL2Mod/Mod Players Single Player Base Source SDK Base File Date Rating tags HL2Mod_Source SDK Base HL2Mod_Single Player